using System;
using System.Threading.Tasks;

namespace Nekonya.Managers
{
    public interface IGlobalManager
    {
        /// <summary>
        /// 退出游戏
        /// </summary>
        void QuitGame();

        /// <summary>
        /// 通用弹窗
        /// 简化：只有正文内容和标题，包含一个title
        /// </summary>
        /// <param name="content"></param>
        /// <param name="title"></param>
        Task ShowMessageBox_1Btn(string content, string title = null, string confirmBtnName = null, bool useMask = true, bool closeByMask = true);

        /// <summary>
        /// 通用弹窗
        /// 简化的双按钮（确认/取消）弹窗
        /// </summary>
        /// <param name="content">正文， 支持富文本</param>
        /// <param name="title">标题</param>
        /// <param name="confirmBtnName">确认按钮名称</param>
        /// <param name="cancelBtnName">取消按钮名称</param>
        /// <param name="onConfirm">确认事件</param>
        /// <param name="onCancel">取消事件</param>
        /// <param name="useMask">使用遮罩， 默认启用</param>
        /// <param name="closeByMask">点击遮罩关闭，默认关闭</param>
        /// <param name="priorityConfirmation">优先的“确认”，如果为true，则优先显示“确认”按钮（比如统一放在一个方向，比如加着重色）</param>
        /// <param name="warningConfirmation">警告色的“确认”，如果为true, 则“确认”按钮使用警告色主题</param>
        /// <returns></returns>
        Task ShowMessageBox_2Btn(string content, string title = null, string confirmBtnName = null, string cancelBtnName = null, Action onConfirm = null, Action onCancel = null, bool useMask = true, bool closeByMask = false, bool priorityConfirmation = true, bool warningConfirmation = false);
    }
}
